import _ from 'lodash';

/**
 * 跳转到指定的地址。
 * 如果目标地址以 `http://` 或者 `https://` 开头，那么直接跳转，否则通过 `window.env.base` 计算出完整路径再跳转。
 * @param href 目标地址，如果是空字符串或者`null`或者`undefined`则不跳转。
 */
export const jumpTo = (href: string) => {
    href = _.trim(href);
    if (href === '') {
        return;
    }

    if (href.startsWith('http://') || href.startsWith('https://')) {
        window.location.href = href;
    } else {
        if (!href.startsWith('/')) {
            window.location.href = (window as any).env.current + '/' + href;
        } else {
            window.location.href = (window as any).env.base + href;
        }
    }
};

export const parseSearch = (s: string = ''): any => {
    s = _.trim(s);
    if (!s) {
        s = location.search;
    }

    if (s.charAt(0) === '?') {
        s = s.substring(1);
    }

    const result: any = {};

    if (!s) {
        return result;
    }

    _.split(s, '&').forEach(p => {
        const [k, v] = p.split('=');
        if (!k || !v) {
            return;
        }
        result[k] = v;
    });

    return result;
};